FIG. 1 illustrates a computer (also called a file server) 20. The present invention is applicable to any computer which transfers data to a database, however, the invention will be described in reference to a computer which receives data from electronic test equipment 22. The data from the electronic test equipment is stored as a set of test data files 24. The test data files describe diagnostic information relating to the testing of a semiconductor wafer. Typical information in a test data file includes the electronic test equipment name, the wafer name, the die name, the date, the time, and a set of test parameters for the die.
FIG. 1 also illustrates an operating system 26 and application program 28 operating on the computer 20. FIG. 1 also illustrates a database program 30, which may be operated on the computer 20 or a separate computer. In the prior art, there are at least two ways to transfer test data files 24 or data from the operating system 26 or application program 28 to a database program 30. One technique is a standard insertion operation. For example, the "Open Client-DB Library/C" product sold by SYBASE, Incorporated, Emeryville, Calif., supports an "insert" command. The insert command results in data being inserted into the database 30 in multiple locations. For example, the data is stored to a data device, to a data device mirror, to a log device, and to a log device mirror. After each item is inserted, an acknowledgment is sent to the system from which the data arrived. This approach provides recoverable and consistent data in the case of a system failure, such as a power failure, a database crash, or disk failure. The problem with this approach is that it is relatively slow. The speed problem is largely attributable to the acknowledgment operation that is executed after each item is inserted into the database. In many cases the insertion and acknowledgment operations at the different database locations are performed sequentially, further slowing the process. The speed problem is especially acute in the case of test data files from electronic test equipment 22 because such files have large amounts of data.
Another approach to transferring data to a database is known as bulk copying. For example, the "Open Client-DB Library/C" product sold by SYBASE, Incorporated, Emeryville, Calif., supports a bulk copy "bcp" command. The main advantage of the bulk copy command over the insert command is speed. The high speed is achieved because acknowledgment signals are not sent for each item that is entered into the database. In addition, the transferred information is not redundantly written to a data log during the transfer. In view of these circumstances, it is problematic if the system fails before the bulk transfer is complete. In particular, since there is no acknowledgment operation, it is impossible to determine which information was transferred before the system failure. Thus, it is unknown which information is already in the database and which information still has to be transferred to the database. Because high-speed bulk transfers affect the recoverability of the database, database vendors discourage the use of bulk transfers in real time production systems, such as test data files 24 from electronic test equipment 22.
In view of the foregoing, it would be highly desirable to provide a technique for obtaining the speed benefits of bulk transfers to a database, while preserving file transfer status information in the case of a system failure.